//@author A0078695H
/*

	Command class to hold info on command to be executed.

*/

#ifndef _COMMAND_h_
#define _COMMAND_h_

#include "main.h"
#include "date.h"
#include "task.h"


using namespace std;

enum cmdTypes {
	ADD=0, DISPLAY, DEL, CLEAR, EXIT, SORT, FILTER, SEARCH, INVALID, UPDATE, DONE, UNDONE, UNDO, REDO, HELP
};

class Cmd{

protected:
	vector<string> params;
	cmdTypes cmdType; 
	string origStr;
public:
	Cmd(cmdTypes cmdType, vector<string> params, string origStr);
	string toString();//Provide a string on what this command will do.

	void setCmdType(cmdTypes type);
	void setParams(vector<string> params);

	cmdTypes getCmdType();
	vector<string> getParams();
};

#endif